:root {
  --system-primary-color: #409eff;
  --system-primary-text-color: #fff;

  /* 菜单颜色相关 */
  --system-menu-text-color: #bfcbd9;
  --system-menu-background: #181f31;
  --system-menu-children-background: #1f2d3d;
  --system-menu-submenu-active-color: #fff;
  --system-menu-hover-background: #203448;

  --layout-header-height: 56px;
  --layout-main-bg-color: #f2f5f9;
}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
*:focus {
  outline: none;
}
[v-cloak] {
  display: none;
}
html,
body,
#app {
  height: 100vh;
}
.clearfix:before,
.clearfix:after {
  display: table;
  content: '';
}
.clearfix:after {
  clear: both;
}
/* 滑动条 */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-thumb {
  background-color: #cccccc;
  border-radius: 8px;
}
::-webkit-scrollbar-track-piece {
  background-color: transparent;
  border-radius: 8px;
}

.container {
  height: 100%;
}
.el-header {
  background-color: #b3c0d1;
  color: var(--el-text-color-primary);
  line-height: 60px;
}
.el-aside {
  background-color: var(--system-menu-background);
}
.layout-side {
  display: flex;
  flex-direction: column;
}
.logo {
  height: var(--layout-header-height);
  line-height: var(--layout-header-height);
  color: #fff;
  font-size: 16px;
  text-align: center;
}
.el-menu {
  border-right: none;
}
.el-menu-item,
.el-sub-menu {
  background-color: var(--system-menu-background) !important;
}
.el-menu-item:hover,
.el-sub-menu__title:hover {
  background-color: var(--system-menu-hover-background) !important;
}
.el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu.is-active > .el-sub-menu__title i {
  color: var(--system-menu-submenu-active-color) !important;
}
.el-sub-menu .el-sub-menu .el-sub-menu__title {
  background-color: var(--system-menu-children-background) !important;
}
.el-sub-menu .el-sub-menu .el-sub-menu__title:hover {
  background-color: var(--system-menu-hover-background) !important;
}

/* 菜单项样式 */
.el-menu-item {
  background-color: var(--system-menu-children-background) !important;
}
.el-menu-item:hover {
  background-color: var(--system-menu-hover-background) !important;
}
.el-menu-item.is-active {
  background-color: var(--system-primary-color) !important;
  color: var(--system-primary-text-color) !important;
}
.el-menu-item.is-active:hover {
  background-color: var(--system-primary-color) !important;
  color: var(--system-primary-text-color) !important;
}

.layout-header {
  height: auto;
  background: none;
  padding: 0;
}

.layout-header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  line-height: var(--layout-header-height);
  height: var(--layout-header-height);
  padding: 0 20px;
  background-color: #b3c0d1;
  /* box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); */
}
.collapse-icon {
  cursor: pointer;
}

.nav-login-user {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.nav-login-user .el-dropdown {
  margin-left: 10px;
  color: #333;
}

/* 系统公告 */
.bell-icon-box {
  padding: 8px 8px; /* 主要是为了扩大点击区域 */
  margin-right: 10px;
}
.bell-icon-box .el-icon-bell {
  font-size: 20px;
  color: #333;
  cursor: pointer;
}
.message-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  line-height: 30px;
  font-size: 14px;
  padding-bottom: 4px;
  border-bottom: 1px solid #ebebeb;
}
.message-title .el-icon {
  cursor: pointer;
  margin-right: 4px;
}
.message-body {
  padding-top: 5px;
  min-height: 300px;
  max-height: 400px;
  overflow-y: auto;
}
.message-item {
  width: 98%;
  padding: 10px;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
  margin: 0 auto 10px;
}
.message-item:hover {
  background-color: #f0f0f0;
}
.message-item .el-tag {
  margin-right: 4px;
}
.message-item .tit {
  color: #027aff;
  line-height: 30px;
}
.message-item .message-footer {
  padding-top: 4px;
  display: flex;
  justify-content: space-between;
}
.message-item .foot-item {
  color: rgb(248, 50, 50);
}
.message-item .foot-item i {
  margin-right: 6px;
}

/* 页面主体布局 */
.layout-main {
  background-color: var(--layout-main-bg-color);
  padding: 0 20px 20px;
  height: 0;
}
.layout-main-inner {
  width: 100%;
  height: 100%;
  padding: 0 20px;
  background-color: var(--system-primary-text-color);
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
  overflow: auto;
}

.page-box {
  height: 100%;
  display: flex;
  flex-direction: column;
}
.page-header {
  padding-top: 10px;
}
.page-header-search {
  display: flex;
}
.page-header-search > .el-form {
  flex: 1;
}

.page-main {
  height: 0;
  flex: 1;
}

.w80 {
  width: 80px;
}
.mr5 {
  margin-right: 5px;
}
.w290 {
  width: 290px;
}
